package com.ibeeking.found.msg.rest.service;


import com.ibeeking.found.common.entity.MsgBaseCodeDTO;
import com.ibeeking.found.msg.service.common.bo.MsgBindConfigBO;
import com.ibeeking.found.msg.service.common.param.MsgBindConfigParam;
import com.ibeeking.found.msg.service.common.query.MsgBindConfigBaseQuery;
import com.ibeeking.found.msg.service.common.query.MsgBindConfigQuery;

import com.ibeeking.found.msg.service.common.vo.MsgBindConfigVO;
import com.ibeeking.found.msg.service.common.vo.MsgBindConfigViewVO;

import java.util.List;


/**
 * IMsgBindConfigService
 *
 * @Author ibeeking
 * @Date 2022-01-06 14:15
 */
public interface IMsgBindConfigService {

    /***
     * 查询列表
     */
    List<MsgBindConfigBO> listBase(MsgBindConfigBaseQuery query);

    /**
     * 根据id查询
     *
     * @param id
     * @return
     */
    MsgBindConfigBO selById(Long id);

    /***
     * 查询列表
     */
    List<MsgBindConfigVO> list(MsgBindConfigQuery query);

    /***
     * 查询列表
     */
    List<MsgBindConfigVO> listByTemplateType(Integer templateType, String templateCode);
    /***
     * 通过id查询
     */
    MsgBindConfigViewVO view(Long id);

    MsgBindConfigViewVO viewBase(MsgBaseCodeDTO msgBaseCodeDTO);

    /**
     * 根据code查询消息基本信息
     *
     * @param code
     * @return
     */
    MsgBindConfigViewVO viewByCode(String code);

    /**
     * 保存
     *
     * @param param
     * @return
     */
    Boolean save(MsgBindConfigParam param);
    /**
     * 更改状态
     * @param id
     * @param type
     * @return
     */
    Boolean changeStatus(Long id, Integer type, Integer status);

}
